package com.example.chessbattleplatform.web.chess_rooms.dataService.impl;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.chessbattleplatform.web.chess_rooms.Pojo.Enum.RoomTypeEnum;
import com.example.chessbattleplatform.web.chess_rooms.Pojo.mappers.Rooms;

public interface RoomsDataServiceInterface extends IService<Rooms> {

    /**
     * 创建 等待房间
     *
     * @param rooms - 要创建房间信息
     * @return Rooms - 创建后的房间信息
     */
    Rooms createRoom(Rooms rooms);

    /**
     * 获取 等待房间
     *
     * @param roomUuid - 房间id
     * @return 等待房间信息
     */
    Rooms getRoom(String roomUuid);

    /**
     * 修改 等待房间
     *
     * @param rooms - 要修改房间信息
     * @return Rooms - 修改后的房间信息
     */
    Rooms updateRoom(Rooms rooms);

    /**
     * 列表查询等待房间
     *
     * @param Current current – 当前页
     * @param limit   limit – 每页显示条数
     * @return Page<Rooms> - 房间列表数据
     */
    Page<Rooms> getAllProductsKind(Long Current, Long limit);

    /**
     * 删除 等待房间
     *
     * @param roomId - 房间id
     * @return boolean - 删除结果 true-删除成功 false-删除失败
     */
    Boolean deleteWaitingRoom(String roomId);

    /**
     * 查询 等待房间 是否存在
     *
     * @param roomId - 房间id
     * @return - 返回 true-存在 false-不存在
     */
    Boolean IsMyRoom(String roomId);

    /**
     * 查询 等待房间 类型
     *
     * @param roomId       - 房间id
     * @param roomTypeEnum - 房间类型
     * @return - 返回 true-存在 false-不存在
     */
    Boolean IsRoomTypeEnum(String roomId, RoomTypeEnum roomTypeEnum);

    /**
     * 查询 等待房间 密码
     *
     * @param roomId   - 房间id
     * @param password - 房间密码
     * @return - 返回 true-密码正确 false-错误
     */
    Boolean IsMyRoomPassword(String roomId, String password);
}
